passwordAgain.addBlurListener(new BlurListener() {
			...
			@Override
			public void blur(BlurEvent event) {
				passwordAgain.validate();
			}
		});
		
passwordAgain.addValidator(new Validator() {
			...
			@Override
			public void validate(Object value) throws InvalidValueException {
				if (!passwordAgain.getValue().equals(password.getValue())) {
					submit.setEnabled(false);
					passwordAgain.setComponentError(new ErrorMessage() {
						@Override
						public String getFormattedHtmlMessage() {
							return "Password not match";
						}
						@Override
						public ErrorLevel getErrorLevel() {
							return ErrorLevel.ERROR;
						}
					});
				} else {
					passwordAgain.setComponentError(null);
					submit.setEnabled(true);
				}
			}
		});